﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once
#include "GcmpModel.h"
#include "OwnerPtr.h"
#include <vector>

namespace gcmp
{
    class IGraphicsElementShape;
    class IParameter;
    class ISubComponentPropertyCollection;

    /// \brief 对象上云标准数据定义
    struct GCMP_MODEL_EXPORT ElementCloudStandardContent
    {
        OwnerPtr<IGraphicsElementShape> GraphicsElementShape;   ///< 对象显示几何的图形表达节点
        std::vector<OwnerPtr<IParameter>> Parameters;           ///< 标准参数集
        OwnerPtr<ISubComponentPropertyCollection> SubComponentPropertyCollection;      ///< 组合标准参数集

        /// \brief 构造函数
        ElementCloudStandardContent();

        /// \brief 禁止拷贝构造
        ElementCloudStandardContent(const ElementCloudStandardContent &) = delete;

        /// \brief 禁止赋值
        ElementCloudStandardContent& operator = (const ElementCloudStandardContent &) = delete;
    };
}
